package com.quanxiaoha.framework.common.util;

import java.math.RoundingMode;
import java.text.DecimalFormat;

/**
 * @author: Jovan
 * @date: 2025/3/31
 * @description: 数字工具类
 */
public class NumberUtils {

    public static String formatNumberString(long number) {
        if(number < 10000){
            // 小于 1 万，直接返回
            return String.valueOf(number);
        } else if(number >= 10000 && number < 100000000){
            // 小于 1 亿，显示万单位
            double result = number / 10000.0;
            // 保留一位小数
            DecimalFormat df = new DecimalFormat("#.#");
            // 禁用四舍五入
            df.setRoundingMode(RoundingMode.DOWN);
            String formattedResult = df.format(result);
            return formattedResult + "万";
        } else {
            // 大于 1 亿，统一显示 9999 万
            return "9999万";
        }
    }

    public static void main(String[] args) {
        // 测试
        System.out.println(formatNumberString(1000));         // 1000
        System.out.println(formatNumberString(11130));        // 1.1万
        System.out.println(formatNumberString(26719300));     // 2671.9万
        System.out.println(formatNumberString(10000000));    // 1000万
        System.out.println(formatNumberString(999999));       // 99.9万
        System.out.println(formatNumberString(150000000));    // 超过一亿，展示9999万
        System.out.println(formatNumberString(99999));        // 9.9万
    }
}
